diff options
Diffstat (limited to 'drivers/input/keyboard')
-rw-r--r-- | drivers/input/keyboard/gpio_keys.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/input/keyboard/gpio_keys.c b/drivers/input/keyboard/gpio_keys.c index b8b4876ac8d3..f44f05b70ee0 100644 --- a/drivers/input/keyboard/gpio_keys.c +++ b/drivers/input/keyboard/gpio_keys.c | |||
@@ -621,9 +621,12 @@ gpio_keys_get_devtree_pdata(struct device *dev) | |||
621 | int gpio = -1; | 621 | int gpio = -1; |
622 | enum of_gpio_flags flags; | 622 | enum of_gpio_flags flags; |
623 | 623 | ||
624 | button = &pdata->buttons[i++]; | ||
625 | |||
624 | if (!of_find_property(pp, "gpios", NULL)) { | 626 | if (!of_find_property(pp, "gpios", NULL)) { |
625 | button->irq = irq_of_parse_and_map(pp, 0); | 627 | button->irq = irq_of_parse_and_map(pp, 0); |
626 | if (button->irq == 0) { | 628 | if (button->irq == 0) { |
629 | i--; | ||
627 | pdata->nbuttons--; | 630 | pdata->nbuttons--; |
628 | dev_warn(dev, "Found button without gpios or irqs\n"); | 631 | dev_warn(dev, "Found button without gpios or irqs\n"); |
629 | continue; | 632 | continue; |
@@ -640,8 +643,6 @@ gpio_keys_get_devtree_pdata(struct device *dev) | |||
640 | } | 643 | } |
641 | } | 644 | } |
642 | 645 | ||
643 | button = &pdata->buttons[i++]; | ||
644 | |||
645 | button->gpio = gpio; | 646 | button->gpio = gpio; |
646 | button->active_low = flags & OF_GPIO_ACTIVE_LOW; | 647 | button->active_low = flags & OF_GPIO_ACTIVE_LOW; |
647 | 648 | ||