Felix, Not sure what happened, but I was notified via patchwork that this patch was 'Accepted': https://patchwork.ozlabs.org/patch/573522/
However, I don't see it applied to any OpenWrt tree that I can find: * https://dev.openwrt.org/log/trunk/package/kernel/gpio-button-hotplug/src/gpio-button-hotplug.c * http://git.openwrt.org/?p=openwrt.git;a=history;f=package/kernel/gpio-button-hotplug/src/gpio-button-hotplug.c What's going on? - Pushpal On Tue, Jan 26, 2016 at 2:33 PM, Pushpal Sidhu <[email protected]> wrote: > Many gpio controllers 'cansleep' due to the fact that they are behind busses > e.g. i2c etc. > > Using threaded irq's allows for 'sleep-able' gpio's to be used. > > Signed-off-by: Pushpal Sidhu <[email protected]> > Signed-off-by: Tim Harvey <[email protected]> > --- > .../kernel/gpio-button-hotplug/src/gpio-button-hotplug.c | 13 > +++++-------- > 1 file changed, 5 insertions(+), 8 deletions(-) > > 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 029a388..6d1a197 100644 > --- a/package/kernel/gpio-button-hotplug/src/gpio-button-hotplug.c > +++ b/package/kernel/gpio-button-hotplug/src/gpio-button-hotplug.c > @@ -555,20 +555,17 @@ static int gpio_keys_probe(struct platform_device *pdev) > struct gpio_keys_button *button = &pdata->buttons[i]; > struct gpio_keys_button_data *bdata = &bdev->data[i]; > > - if (bdata->can_sleep) { > - dev_err(&pdev->dev, "skipping gpio:%d, it can > sleep\n", button->gpio); > - continue; > - } > if (!button->irq) > button->irq = gpio_to_irq(button->gpio); > if (button->irq < 0) { > dev_err(&pdev->dev, "failed to get irq for > gpio:%d\n", button->gpio); > continue; > } > - ret = devm_request_irq(&pdev->dev, button->irq, > button_handle_irq, > - IRQF_TRIGGER_RISING | > IRQF_TRIGGER_FALLING, > - dev_name(&pdev->dev), bdata); > - if (ret) > + > + ret = devm_request_threaded_irq(&pdev->dev, button->irq, > NULL, button_handle_irq, > + IRQF_TRIGGER_RISING | > IRQF_TRIGGER_FALLING, > + dev_name(&pdev->dev), bdata); > + if (ret < 0) > dev_err(&pdev->dev, "failed to request irq:%d for > gpio:%d\n", button->irq, button->gpio); > else > dev_dbg(&pdev->dev, "gpio:%d has irq:%d\n", > button->gpio, button->irq); > -- > 2.7.0 > _______________________________________________ openwrt-devel mailing list [email protected] https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
