All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] platform/x86: x86-android-tablets: fix gpio_secondary_fwnode_init() not working
@ 2026-08-31 20:11 Hans de Goede
  2026-08-31 20:22 ` Dmitry Torokhov
       [not found] ` <apcRAvoHkh9blDwK@black.igk.intel.com>
  0 siblings, 2 replies; 8+ messages in thread
From: Hans de Goede @ 2026-08-31 20:11 UTC (permalink / raw)
  To: Ilpo Järvinen, Andy Shevchenko, Dmitry Torokhov,
	Bartosz Golaszewski, Linus Walleij, Rafael J . Wysocki
  Cc: Hans de Goede, platform-driver-x86

acpi_bus_find_device_by_name() call returns a pointer to the device object
on the ACPI bus, aka the ACPI companion device.

gpio_secondary_fwnode_init() then continues with setting the secondary
fwnode on this device. But this is not the actual physical device for
the GPIO controller (e.g. the GPIO controller platform bus device).

This mismatch is causing GPIO lookups by secondary fwnode to not work.

Modify gpio_secondary_fwnode_init() to instead set the secondary fwnode
of the first physical device associated with the ACPI companion device.

This fixes the GPIO lookups not working.

Fixes: 1448c2d2ca5c ("platform/x86: x86-android-tablets: enable fwnode matching of GPIO chips")
Signed-off-by: Hans de Goede <johannes.goede@oss.qualcomm.com>
---
 drivers/platform/x86/x86-android-tablets/core.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/drivers/platform/x86/x86-android-tablets/core.c b/drivers/platform/x86/x86-android-tablets/core.c
index b028af1c9942..1706287fd136 100644
--- a/drivers/platform/x86/x86-android-tablets/core.c
+++ b/drivers/platform/x86/x86-android-tablets/core.c
@@ -417,9 +417,15 @@ static int gpio_secondary_fwnode_init(struct device *parent,
 		if (WARN_ON(!fwnode))
 			return -ENOENT;
 
-		set_secondary_fwnode(dev, fwnode);
+		struct device *phys_dev = acpi_get_first_physical_node(to_acpi_device(dev));
+		if (!phys_dev)
+			return dev_err_probe(parent,
+					     -ENODEV, "No physical device for ACPI GPIO dev: %s\n",
+					     (*swnode)->name);
 
-		ret = devm_add_action_or_reset(parent, gpio_secondary_unset, get_device(dev));
+		set_secondary_fwnode(phys_dev, fwnode);
+
+		ret = devm_add_action_or_reset(parent, gpio_secondary_unset, get_device(phys_dev));
 		if (ret)
 			return ret;
 	}
-- 
2.55.0


^ permalink raw reply related	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2026-09-09 14:12 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-31 20:11 [PATCH] platform/x86: x86-android-tablets: fix gpio_secondary_fwnode_init() not working Hans de Goede
2026-08-31 20:22 ` Dmitry Torokhov
2026-08-31 20:28   ` Hans de Goede
2026-08-31 20:34     ` Dmitry Torokhov
     [not found] ` <apcRAvoHkh9blDwK@black.igk.intel.com>
2026-09-03 11:54   ` Ilpo Järvinen
2026-09-08 17:51     ` Hans de Goede
2026-09-08 19:04       ` Ilpo Järvinen
2026-09-09 14:11       ` Andy Shevchenko

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.