Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/1.1/patches/2230891/?format=api
{ "id": 2230891, "url": "http://patchwork.ozlabs.org/api/1.1/patches/2230891/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-gpio/patch/20260430-baytrail-real-swnode-v4-2-767bcda6667f@oss.qualcomm.com/", "project": { "id": 42, "url": "http://patchwork.ozlabs.org/api/1.1/projects/42/?format=api", "name": "Linux GPIO development", "link_name": "linux-gpio", "list_id": "linux-gpio.vger.kernel.org", "list_email": "linux-gpio@vger.kernel.org", "web_url": "", "scm_url": "", "webscm_url": "" }, "msgid": "<20260430-baytrail-real-swnode-v4-2-767bcda6667f@oss.qualcomm.com>", "date": "2026-04-30T07:34:06", "name": "[v4,2/2] platform/x86: x86-android-tablets: enable fwnode matching of GPIO chips", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "151ef67c6d275d2440a1cfb89f28643804119de3", "submitter": { "id": 92196, "url": "http://patchwork.ozlabs.org/api/1.1/people/92196/?format=api", "name": "Bartosz Golaszewski", "email": "bartosz.golaszewski@oss.qualcomm.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/linux-gpio/patch/20260430-baytrail-real-swnode-v4-2-767bcda6667f@oss.qualcomm.com/mbox/", "series": [ { "id": 502225, "url": "http://patchwork.ozlabs.org/api/1.1/series/502225/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-gpio/list/?series=502225", "date": "2026-04-30T07:34:04", "name": "platform/x86: x86-android-tablets: use real firmware node references with intel drivers", "version": 4, "mbox": "http://patchwork.ozlabs.org/series/502225/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2230891/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2230891/checks/", "tags": {}, "headers": { "Return-Path": "\n <linux-gpio+bounces-35835-incoming=patchwork.ozlabs.org@vger.kernel.org>", "X-Original-To": [ "incoming@patchwork.ozlabs.org", "linux-gpio@vger.kernel.org" ], "Delivered-To": "patchwork-incoming@legolas.ozlabs.org", "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256\n header.s=qcppdkim1 header.b=YkXGUqc0;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n header.a=rsa-sha256 header.s=google header.b=AGnpajaL;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=linux-gpio+bounces-35835-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)", "smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com\n header.b=\"YkXGUqc0\";\n\tdkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n header.b=\"AGnpajaL\"", "smtp.subspace.kernel.org;\n arc=none smtp.client-ip=205.220.180.131", "smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com", "smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=oss.qualcomm.com" ], "Received": [ "from sea.lore.kernel.org (sea.lore.kernel.org\n [IPv6:2600:3c0a:e001:db::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g5mCm4NBvz1yHZ\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 30 Apr 2026 17:35:00 +1000 (AEST)", "from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id DA6D03024531\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 30 Apr 2026 07:34:35 +0000 (UTC)", "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 548CA3DD51E;\n\tThu, 30 Apr 2026 07:34:35 +0000 (UTC)", "from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com\n [205.220.180.131])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id B62873D7D84\n\tfor <linux-gpio@vger.kernel.org>; Thu, 30 Apr 2026 07:34:22 +0000 (UTC)", "from pps.filterd (m0279873.ppops.net [127.0.0.1])\n\tby mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id\n 63U6Ahob2533827\n\tfor <linux-gpio@vger.kernel.org>; Thu, 30 Apr 2026 07:34:18 GMT", "from mail-qt1-f200.google.com (mail-qt1-f200.google.com\n [209.85.160.200])\n\tby mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dupe92hde-1\n\t(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)\n\tfor <linux-gpio@vger.kernel.org>; Thu, 30 Apr 2026 07:34:18 +0000 (GMT)", "by mail-qt1-f200.google.com with SMTP id\n d75a77b69052e-50faf575af4so12945821cf.0\n for <linux-gpio@vger.kernel.org>;\n Thu, 30 Apr 2026 00:34:18 -0700 (PDT)", "from brgl-qcom.local ([2a01:cb1d:dc:7e00:79a:f446:21cb:22e7])\n by smtp.gmail.com with ESMTPSA id\n 5b1f17b1804b1-48a81ed6bafsm76132625e9.2.2026.04.30.00.34.15\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Thu, 30 Apr 2026 00:34:16 -0700 (PDT)" ], "ARC-Seal": "i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1777534469; cv=none;\n b=dx/jcY/1NLsDF0tEts7GqBUKTF5P3Lb6DmO3fooU6Nd7v73dHGLxSnvH9NpoM6+1l/v0lG11H8Z2ETwKNVTf2JSj9K9gCIQ7Pie2JuBc94Tb8Q8bkIY3LxmzIkZc3KLN6a0YcYnV1EVrX2UWCI/cykw/nAwrf9V0BKE+1Z6XGD0=", "ARC-Message-Signature": "i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1777534469; c=relaxed/simple;\n\tbh=ftejCI4cDYR15DURdSwoo+KUTTkz4glwgHDYbKITpyw=;\n\th=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References:\n\t In-Reply-To:To:Cc;\n b=LsrQCPNalZ75cAB4uJAIfYagfQ8JvR13lESb5o3et6Hfry9ax1vgSyty92p5LbxqiDrUIBXrmhY90h71uqn7bub6/zWExmV/ezA5JIpV5ReJlokXgE2suLica5xRQ2NqeCjb3MrznSAonyMmZDifEq1ARxCdg94IuqXyuKfUPoA=", "ARC-Authentication-Results": "i=1; smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com;\n spf=pass smtp.mailfrom=oss.qualcomm.com;\n dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com\n header.b=YkXGUqc0;\n dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n header.b=AGnpajaL; arc=none smtp.client-ip=205.220.180.131", "DKIM-Signature": [ "v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=\n\tcc:content-transfer-encoding:content-type:date:from:in-reply-to\n\t:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=\n\tU1lg30DyGHdc17+B9LzqWTA6Lt4/KitzUTkvawVH9l8=; b=YkXGUqc0UwwFKQda\n\tPE1GWHQR2rLBvZZuCvHXOt537eZxo7bpxUkuhu/01yPufMEdgsCS46y3dh2vjshm\n\tyOBLMyqduCPu+m8TK48Ct32cK7HWZLIQpgsrW8Kr/mL3VJr2dBJAYN32bWr73v9a\n\tsV6yeNJB6MkMuCvDr5qzEshW9EcHuZBSM6XNx6mCL5ZOB9zodEy76yVbvSS5o7Z6\n\teTpCVHLQ/30HKkVVJ9vYAZmXpuqMLLXRsi33P0AIgfYjEVQApvfjQU13xzkm1aTE\n\tKU7qJ14v3rNPnlFNoG1sXF4CE8vXEYqBVY8TZ4uxqjOr/TkOg7U7cl9289PmVSeM\n\txpbHEA==", "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=oss.qualcomm.com; s=google; t=1777534457; x=1778139257;\n darn=vger.kernel.org;\n h=cc:to:in-reply-to:references:message-id:content-transfer-encoding\n :mime-version:subject:date:from:from:to:cc:subject:date:message-id\n :reply-to;\n bh=U1lg30DyGHdc17+B9LzqWTA6Lt4/KitzUTkvawVH9l8=;\n b=AGnpajaLlAqaHH9EQX2in9CzyIyIvN2OzhTDs/pf6TRE9/HQbDz8vNsFqackNwhQ7T\n IMloXvno0aERnnbpq/HPZEKpbgv5RBYa1AR/EbI6ZWGQZ9osiGFerSY9vdr+YLpZ8M+g\n pHlo6XaMKFdh1n8wRCnwSTSdI+GH1yEoyXAup4WAyWNu/SLgJP7WIrYGkyuQUShQKZ0u\n su3zkP/KTzB01ixAmJBFDME/mDwFp1Xykd/cSTwUyAC1uFWy1tUPSRZONrJpEz/9CVz5\n iw888GMsZ1+O/9G3r1CFcAIZ/BBmdWavduf1Zpr1kpJF20besdnQdZBjhyVrnu3SueHS\n C5BQ==" ], "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1777534457; x=1778139257;\n h=cc:to:in-reply-to:references:message-id:content-transfer-encoding\n :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to\n :cc:subject:date:message-id:reply-to;\n bh=U1lg30DyGHdc17+B9LzqWTA6Lt4/KitzUTkvawVH9l8=;\n b=GJAsoKLJJa8tFxyR8JITZWHWhQKjgKvxgYYH167palRziSVHYsDiNu4UWMB8B+FpdX\n AzpNUerzvnyWABPlZHmSmSMQzEY9Htg3xHNqJ7/4xOhwTr/+vZR1cHZwHs+reGLIrsuI\n sooRif26+CnqRIEVpTPX5STTXA87AzwtOmrZzm8/Z+yDcNLNPVbEy7lHT/RUq94BSYBT\n cQeW9+UvFi9meCQyOAwwf4EM5Q6ctqhvH7G7cvTczH76RIasQG1TUdEAUu+wAZVtf9oF\n SlltM9OYous2DJ54e+hBRfKHCr3sl3KlGmp8oF5hwiyubII1IpvimZJRoD8+JBA5KGcS\n W5bg==", "X-Forwarded-Encrypted": "i=1;\n AFNElJ9wGK/VWu8frPHCCa+dEp9QYQDy1DBi6hxmzbZ97Oy1jT2fmKg2JYpWAuGXRLlyFkm8b1JbejUZp/wq@vger.kernel.org", "X-Gm-Message-State": "AOJu0YzuMZRYvjf8qUgyDgPZDMXfE9RcgqW24hmu6uBrP7E4Tk+feLxO\n\tn8UCVcgn9n2zS5kD3X9DRcNfQ7Q47plSjjlRG7U0u1KT31IulDizormLvr2gXqlQOB6Gt5vjasq\n\tc5RucrVr77c38MiFAArWDIXzjm5xKlVhNVXVinPJjjnh1Hn4QU7Se9/WVkgAds+3E", "X-Gm-Gg": "AeBDiesnzom68qWeROP5miiQOS+u758VMZiTCNu/wnAoeF7h4AQgNyjLr1Hsg7MyIZj\n\t6JwLVOXKnt83l6ihT0PfS9lRe6N99e/gYITNHB+6x9F8UdlsPeD4spgRJ/OQo41Au7s/smBFch5\n\tQwkLuLkX6j5/tsHE2T0oRdL1EI9+AGbny3Uk5CqMEOlFWnU6Uivqg/IoJxtPVae3c7BAfPvJ0j2\n\tJesw9tz0p2nMJoWAy1tCLJjR1NMLEZJlgvpovN/vn6nIUoCEdD+e77htrz/TIdCj62wwIIX6mUb\n\tR6J3hbJHFUWjf85zwaaJwfPjcDWslYj5MMOZPqocwn9VNpn+QvBi8BJHi0arFUZeY7x32Zse0Uo\n\tdIGTiaAumGq95sDpneLFV2UTuZ+3+uydcBwM61fIMPRGbygqNIQ4eKdYtaJgY", "X-Received": [ "by 2002:a05:622a:2296:b0:50d:abc3:eed5 with SMTP id\n d75a77b69052e-5102ae1dd37mr24163231cf.29.1777534457250;\n Thu, 30 Apr 2026 00:34:17 -0700 (PDT)", "by 2002:a05:622a:2296:b0:50d:abc3:eed5 with SMTP id\n d75a77b69052e-5102ae1dd37mr24162871cf.29.1777534456853;\n Thu, 30 Apr 2026 00:34:16 -0700 (PDT)" ], "From": "Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>", "Date": "Thu, 30 Apr 2026 09:34:06 +0200", "Subject": "[PATCH v4 2/2] platform/x86: x86-android-tablets: enable fwnode\n matching of GPIO chips", "Precedence": "bulk", "X-Mailing-List": "linux-gpio@vger.kernel.org", "List-Id": "<linux-gpio.vger.kernel.org>", "List-Subscribe": "<mailto:linux-gpio+subscribe@vger.kernel.org>", "List-Unsubscribe": "<mailto:linux-gpio+unsubscribe@vger.kernel.org>", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=\"utf-8\"", "Content-Transfer-Encoding": "7bit", "Message-Id": "<20260430-baytrail-real-swnode-v4-2-767bcda6667f@oss.qualcomm.com>", "References": "<20260430-baytrail-real-swnode-v4-0-767bcda6667f@oss.qualcomm.com>", "In-Reply-To": "\n <20260430-baytrail-real-swnode-v4-0-767bcda6667f@oss.qualcomm.com>", "To": "Andy Shevchenko <andriy.shevchenko@linux.intel.com>,\n Daniel Scally <djrscally@gmail.com>,\n Heikki Krogerus <heikki.krogerus@linux.intel.com>,\n Sakari Ailus <sakari.ailus@linux.intel.com>,\n Greg Kroah-Hartman <gregkh@linuxfoundation.org>,\n \"Rafael J. Wysocki\" <rafael@kernel.org>, Danilo Krummrich <dakr@kernel.org>,\n Mika Westerberg <mika.westerberg@linux.intel.com>,\n Andy Shevchenko <andy@kernel.org>, Linus Walleij <linusw@kernel.org>,\n Hans de Goede <hansg@kernel.org>,\n =?utf-8?q?Ilpo_J=C3=A4rvinen?= <ilpo.jarvinen@linux.intel.com>,\n Dmitry Torokhov <dmitry.torokhov@gmail.com>, Len Brown <lenb@kernel.org>", "Cc": "linux-acpi@vger.kernel.org, driver-core@lists.linux.dev,\n linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org,\n platform-driver-x86@vger.kernel.org, brgl@kernel.org,\n Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>", "X-Mailer": "b4 0.14.2", "X-Developer-Signature": "v=1; a=openpgp-sha256; l=4114;\n i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id;\n bh=ftejCI4cDYR15DURdSwoo+KUTTkz4glwgHDYbKITpyw=;\n b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBp8wXyNbrBg8v29GzWwZQSXhoATQ3VfPNhBQPyX\n CBTZhwb0VGJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCafMF8gAKCRAFnS7L/zaE\n w74HD/9R4T00RQB0nP0oxJY0jbchVJlzM2HQLvTUIxu3XYf2kbK+9M5LCXFZDn6pP6shJQG8qg9\n jvbNZ48V+8pTQiu2nRdH5ofy4TTP97Be12edItD9zYZc3BZyaIIfoREEHbyOOXcNxbijgu2ZXgK\n aDnFxWjXdxmcJP3+44LmtBc2f66btigvbsfJ0bqpA+kXXU+pFBtW4do7ukRCaGucdQmblYoufqX\n aFul+BFkxk6RW4b1C1jMkOnsI57vXPULWviGGg1koW2eTe/uFbexumZFhUbk3lo0nZFqVQXeKTy\n w1QBbtvIGl07Q1FFKbkbuzNvJerte0vlk2XaTvUnOlqNViiKDhO5dJpPWYQT/Fl0lbJ07uv5yhc\n A7HAcqvh0fSpG0of8UbqGjbqxuRiZM+E4H8S3qIZXfof/N5D0WDZmfbNSLZVfsqz9gJwSBv1uja\n aSf/DmIUIvwc8Nq5HINCUozUGe05IUEvmVUyNfxIHkpe3JzYgUd+LNSMKGNXRx6ePOF1tSsQlOH\n 4hzKHjmxsFkDi5IrYsP+BChzM7/DIcso0+CtHzTNy1fzq9x73NgmvHhL5plWj4KkJqSVDz9q7py\n BAbKRhko5Ya21J6x1Tg7FjUR0qHOE6OQUOmwLRRZ99r6LSdHxzDlZDihR8wbZyeP42Kh0pJQ1qI\n oz35jL4OLjuxAVg==", "X-Developer-Key": "i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp;\n fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772", "X-Proofpoint-GUID": "P2topx38LiWyVgDFMUDGrLsnR1coh2WX", "X-Proofpoint-Spam-Details-Enc": "AW1haW4tMjYwNDMwMDA3MiBTYWx0ZWRfX4kx76UiGjsEj\n zXEWqk082kbwcD1yx34sYnf8UMuGIx88E83tRlo+e3KN48OpC3je1p2z1CSpCJfWgZrX+xzEaK8\n qTVxM/TuhjLcXsAXcdomFH5l4d6I+qeL20conrW5PlVI2Ud86ujxj+zyNyf0lX76hz1qNlD5PLB\n TLricF9R77sdHP4RdYDuH/5Hos69x5FNm31nmzTJdpZzEuECwblX86n9Kfl3LtMFz7U2wIHyCa0\n usHogHVAlDO5Ojf/fm/c1JbKw4WhjaVl/oHcXzMiqp3790lJzRasf7rO7Q9orNrKw70wMDgo0t7\n 78mE/VTleRJXFthwALJ8FAT9P9qI5VeVD+W9ndV9SHcTDKiWV53wS1TjpeXD2zRsnxtSdJxXrWk\n Ja32y50GKAIiUZQc6Hix+ehZcXyaGVJOJ1jE4egHuhVYL5A3LmMcy8+/mHvp7NZrvLnrlD0NKx5\n puNV0g9yVzvj/XDDjiA==", "X-Proofpoint-ORIG-GUID": "P2topx38LiWyVgDFMUDGrLsnR1coh2WX", "X-Authority-Analysis": "v=2.4 cv=PvmjqQM3 c=1 sm=1 tr=0 ts=69f305fa cx=c_pps\n a=JbAStetqSzwMeJznSMzCyw==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10\n a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22\n a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=EUspDBNiAAAA:8\n a=k_IdGrc-7EcYSgGcGvIA:9 a=QEXdDO2ut3YA:10 a=uxP6HrT_eTzRwkO_Te1X:22", "X-Proofpoint-Virus-Version": "vendor=baseguard\n engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49\n definitions=2026-04-30_02,2026-04-28_01,2025-10-01_01", "X-Proofpoint-Spam-Details": "rule=outbound_notspam policy=outbound score=0\n malwarescore=0 lowpriorityscore=0 adultscore=0 impostorscore=0 spamscore=0\n clxscore=1015 priorityscore=1501 bulkscore=0 phishscore=0 suspectscore=0\n classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0\n reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2604300072" }, "content": "In order to allow GPIOLIB to match cherryview and baytrail GPIO\ncontrollers by their firmware nodes instead of their names, we need to\nattach the - currently \"dangling\" - existing software nodes to their\ntarget devices dynamically.\n\nThe driver uses platform_create_bundle() and expects all required\nproviders to be present before it itself is probed. We know the name of\nthe device we're waiting for so look them up and assign the appropriate\nsoftware node as the secondary firmware node of the underlying ACPI node.\n\nScheduling fine-grained devres actions allows for proper teardown and\nunsetting of the secondary firmware nodes.\n\nSigned-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>\n---\n drivers/platform/x86/x86-android-tablets/core.c | 78 ++++++++++++++++++++++++-\n 1 file changed, 75 insertions(+), 3 deletions(-)", "diff": "diff --git a/drivers/platform/x86/x86-android-tablets/core.c b/drivers/platform/x86/x86-android-tablets/core.c\nindex 021009e9085bec3db9c4daa1f6235600210a6099..8fd0cffe351577182f31c90c104b616cec78c481 100644\n--- a/drivers/platform/x86/x86-android-tablets/core.c\n+++ b/drivers/platform/x86/x86-android-tablets/core.c\n@@ -13,6 +13,7 @@\n #include <linux/acpi.h>\n #include <linux/device.h>\n #include <linux/dmi.h>\n+#include <linux/fwnode.h>\n #include <linux/gpio/consumer.h>\n #include <linux/gpio/machine.h>\n #include <linux/irq.h>\n@@ -360,6 +361,76 @@ static const struct software_node *cherryview_gpiochip_node_group[] = {\n \tNULL\n };\n \n+static void auto_secondary_unset(void *data)\n+{\n+\tstruct fwnode_handle *fwnode = data;\n+\n+\tfwnode->secondary = NULL;\n+}\n+\n+static int acpi_set_secondary_fwnode(struct device *parent, struct device *dev,\n+\t\t\t\t const struct software_node *const swnode)\n+{\n+\tstruct acpi_device *device = to_acpi_device(dev);\n+\tstruct fwnode_handle *fwnode;\n+\tint ret;\n+\n+\tfwnode = software_node_fwnode(swnode);\n+\tif (WARN_ON(!fwnode))\n+\t\treturn -ENOENT;\n+\n+\tfwnode->secondary = ERR_PTR(-ENODEV);\n+\tdevice->fwnode.secondary = fwnode;\n+\n+\tret = devm_add_action_or_reset(parent, auto_secondary_unset, &device->fwnode);\n+\tif (ret)\n+\t\tdev_err(parent, \"Failed to schedule the unset action for secondary fwnode\\n\");\n+\n+\treturn ret;\n+}\n+\n+static void auto_secondary_unregister_node_group(void *data)\n+{\n+\tconst struct software_node **nodes = data;\n+\n+\tsoftware_node_unregister_node_group(nodes);\n+}\n+\n+static int auto_secondary_fwnode_init(struct device *parent)\n+{\n+\tconst struct software_node *const *swnode;\n+\tint ret;\n+\n+\tif (!gpiochip_node_group)\n+\t\treturn 0;\n+\n+\tret = software_node_register_node_group(gpiochip_node_group);\n+\tif (ret)\n+\t\treturn ret;\n+\n+\tret = devm_add_action_or_reset(parent,\n+\t\t\t\t auto_secondary_unregister_node_group,\n+\t\t\t\t gpiochip_node_group);\n+\tif (ret)\n+\t\treturn ret;\n+\n+\tfor (swnode = gpiochip_node_group; *swnode; swnode++) {\n+\t\tstruct device *dev __free(put_device) =\n+\t\t\t\tacpi_bus_find_device_by_name((*swnode)->name);\n+\t\tif (!dev) {\n+\t\t\tdev_err(parent, \"Failed to find the required GPIO controller: %s\\n\",\n+\t\t\t\t(*swnode)->name);\n+\t\t\treturn -ENODEV;\n+\t\t}\n+\n+\t\tret = acpi_set_secondary_fwnode(parent, dev, *swnode);\n+\t\tif (ret)\n+\t\t\treturn ret;\n+\t}\n+\n+\treturn 0;\n+}\n+\n static void x86_android_tablet_remove(struct platform_device *pdev)\n {\n \tint i;\n@@ -391,7 +462,6 @@ static void x86_android_tablet_remove(struct platform_device *pdev)\n \n \tsoftware_node_unregister_node_group(gpio_button_swnodes);\n \tsoftware_node_unregister_node_group(swnode_group);\n-\tsoftware_node_unregister_node_group(gpiochip_node_group);\n }\n \n static __init int x86_android_tablet_probe(struct platform_device *pdev)\n@@ -427,9 +497,11 @@ static __init int x86_android_tablet_probe(struct platform_device *pdev)\n \t\tbreak;\n \t}\n \n-\tret = software_node_register_node_group(gpiochip_node_group);\n-\tif (ret)\n+\tret = auto_secondary_fwnode_init(&pdev->dev);\n+\tif (ret) {\n+\t\tx86_android_tablet_remove(pdev);\n \t\treturn ret;\n+\t}\n \n \tret = software_node_register_node_group(dev_info->swnode_group);\n \tif (ret) {\n", "prefixes": [ "v4", "2/2" ] }