From: Tim Harvey Date: Tue, 28 Feb 2023 00:56:25 +0000 (-0800) Subject: gpio-button-hotplug: do not error on interrupt attached keys X-Git-Tag: v23.05.0-rc1~120 X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=23845fa10bc135bfc7fd4380948b5965b9d20cb5;p=openwrt%2Fopenwrt.git 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 --- 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,