[openwrt/openwrt] gpio-button-hotplug: do not error on interrupt attached keys

LEDE Commits lede-commits at lists.infradead.org
Thu May 18 08:23:45 PDT 2023


chunkeey pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/23845fa10bc135bfc7fd4380948b5965b9d20cb5

commit 23845fa10bc135bfc7fd4380948b5965b9d20cb5
Author: Tim Harvey <tharvey at gateworks.com>
AuthorDate: Mon Feb 27 16:56:25 2023 -0800

    gpio-button-hotplug: do not error on interrupt attached keys
    
    The Linux gpio-keys driver bindings allow for GPIO attached or interrupt
    attached keys. Currently if an interrupt attached key is encountered
    gpio_keys_button_probe() will fail due to not being able to get a gpio
    descriptor:
    gpio-keys: probe of gpio-keys failed with error -2
    
    Skip the failure in the case of interrupt attached keys to resolve this.
    
    Signed-off-by: Tim Harvey <tharvey at gateworks.com>
---
 package/kernel/gpio-button-hotplug/src/gpio-button-hotplug.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/package/kernel/gpio-button-hotplug/src/gpio-button-hotplug.c b/package/kernel/gpio-button-hotplug/src/gpio-button-hotplug.c
index 2b39ec8f3b..522085bb2f 100644
--- a/package/kernel/gpio-button-hotplug/src/gpio-button-hotplug.c
+++ b/package/kernel/gpio-button-hotplug/src/gpio-button-hotplug.c
@@ -506,6 +506,13 @@ static int gpio_keys_button_probe(struct platform_device *pdev,
 			goto out;
 		}
 
+		if (button->irq) {
+			dev_err(dev, "skipping button %s (only gpio buttons supported)\n",
+				button->desc);
+			bdata->b = &pdata->buttons[i];
+			continue;
+		}
+
 		if (gpio_is_valid(button->gpio)) {
 			/* legacy platform data... but is it the lookup table? */
 			bdata->gpiod = devm_gpiod_get_index(dev, desc, i,




More information about the lede-commits mailing list