Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 94a8cab8 authored by Philippe Langlais's avatar Philippe Langlais Committed by Dmitry Torokhov
Browse files

Input: gpio_keys - switch to using request_any_context_irq



The driver does not require hardirq context and can work with threaded
interrupts as well, so let's switch to request_any_context_irq which
will select the context that is available for us.

Signed-off-by: default avatarPhilippe Langlais <philippe.langlais@stericsson.com>
Signed-off-by: default avatarDmitry Torokhov <dtor@mail.ru>
parent 48c27016
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -322,7 +322,7 @@ static void gpio_keys_report_event(struct gpio_button_data *bdata)
	struct gpio_keys_button *button = bdata->button;
	struct input_dev *input = bdata->input;
	unsigned int type = button->type ?: EV_KEY;
	int state = (gpio_get_value(button->gpio) ? 1 : 0) ^ button->active_low;
	int state = (gpio_get_value_cansleep(button->gpio) ? 1 : 0) ^ button->active_low;

	input_event(input, type, button->code, !!state);
	input_sync(input);
@@ -410,8 +410,8 @@ static int __devinit gpio_keys_setup_key(struct platform_device *pdev,
	if (!button->can_disable)
		irqflags |= IRQF_SHARED;

	error = request_irq(irq, gpio_keys_isr, irqflags, desc, bdata);
	if (error) {
	error = request_any_context_irq(irq, gpio_keys_isr, irqflags, desc, bdata);
	if (error < 0) {
		dev_err(dev, "Unable to claim irq %d; error %d\n",
			irq, error);
		goto fail3;