+12
-1
drivers/input/keyboard/gpio_keys.c
+12
-1
drivers/input/keyboard/gpio_keys.c
···
602
602
603
603
i = 0;
604
604
for_each_child_of_node(node, pp) {
605
+
int gpio;
605
606
enum of_gpio_flags flags;
606
607
607
608
if (!of_find_property(pp, "gpios", NULL)) {
···
611
610
continue;
612
611
}
613
612
613
+
gpio = of_get_gpio_flags(pp, 0, &flags);
614
+
if (gpio < 0) {
615
+
error = gpio;
616
+
if (error != -EPROBE_DEFER)
617
+
dev_err(dev,
618
+
"Failed to get gpio flags, error: %d\n",
619
+
error);
620
+
goto err_free_pdata;
621
+
}
622
+
614
623
button = &pdata->buttons[i++];
615
624
616
-
button->gpio = of_get_gpio_flags(pp, 0, &flags);
625
+
button->gpio = gpio;
617
626
button->active_low = flags & OF_GPIO_ACTIVE_LOW;
618
627
619
628
if (of_property_read_u32(pp, "linux,code", &button->code)) {