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: Philippe Langlais <philippe.langlais@stericsson.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
This commit is contained in:
parent
48c27016e1
commit
94a8cab8ca
|
@ -322,7 +322,7 @@ static void gpio_keys_report_event(struct gpio_button_data *bdata)
|
||||||
struct gpio_keys_button *button = bdata->button;
|
struct gpio_keys_button *button = bdata->button;
|
||||||
struct input_dev *input = bdata->input;
|
struct input_dev *input = bdata->input;
|
||||||
unsigned int type = button->type ?: EV_KEY;
|
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_event(input, type, button->code, !!state);
|
||||||
input_sync(input);
|
input_sync(input);
|
||||||
|
@ -410,8 +410,8 @@ static int __devinit gpio_keys_setup_key(struct platform_device *pdev,
|
||||||
if (!button->can_disable)
|
if (!button->can_disable)
|
||||||
irqflags |= IRQF_SHARED;
|
irqflags |= IRQF_SHARED;
|
||||||
|
|
||||||
error = request_irq(irq, gpio_keys_isr, irqflags, desc, bdata);
|
error = request_any_context_irq(irq, gpio_keys_isr, irqflags, desc, bdata);
|
||||||
if (error) {
|
if (error < 0) {
|
||||||
dev_err(dev, "Unable to claim irq %d; error %d\n",
|
dev_err(dev, "Unable to claim irq %d; error %d\n",
|
||||||
irq, error);
|
irq, error);
|
||||||
goto fail3;
|
goto fail3;
|
||||||
|
|
Loading…
Reference in a new issue