aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/input/keyboard/gpio_keys.c
diff options
context:
space:
mode:
authorDmitry Torokhov <dmitry.torokhov@gmail.com>2016-02-23 15:32:14 -0800
committerDmitry Torokhov <dmitry.torokhov@gmail.com>2016-11-07 16:24:29 -0800
commit0f78ba96bbcf30a78224fe56f8fd72f87915afdd (patch)
tree31134d1956f4eb26628cb8c258155eadad7f84f2 /drivers/input/keyboard/gpio_keys.c
parentInput: da9063 - fix module autoload when registered via OF (diff)
downloadlinux-dev-0f78ba96bbcf30a78224fe56f8fd72f87915afdd.tar.xz
linux-dev-0f78ba96bbcf30a78224fe56f8fd72f87915afdd.zip
Input: gpio_keys_polled - keep button data constant
Commit 633a21d80b4a ("input: gpio_keys_polled: Add support for GPIO descriptors") placed gpio descriptor into gpio_keys_button structure, which is supposed to be part of platform data and not modifiable by the driver. To keep the data constant, let's move the descriptor to gpio_keys_button_data structure instead. Tested-by: Mika Westerberg <mika.westerberg@linux.intel.com> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Diffstat (limited to 'drivers/input/keyboard/gpio_keys.c')
-rw-r--r--drivers/input/keyboard/gpio_keys.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/input/keyboard/gpio_keys.c b/drivers/input/keyboard/gpio_keys.c
index 29093657f2ef..890eb397d987 100644
--- a/drivers/input/keyboard/gpio_keys.c
+++ b/drivers/input/keyboard/gpio_keys.c
@@ -624,7 +624,6 @@ gpio_keys_get_devtree_pdata(struct device *dev)
struct gpio_keys_button *button;
int error;
int nbuttons;
- int i;
node = dev->of_node;
if (!node)
@@ -640,19 +639,18 @@ gpio_keys_get_devtree_pdata(struct device *dev)
if (!pdata)
return ERR_PTR(-ENOMEM);
- pdata->buttons = (struct gpio_keys_button *)(pdata + 1);
+ button = (struct gpio_keys_button *)(pdata + 1);
+
+ pdata->buttons = button;
pdata->nbuttons = nbuttons;
pdata->rep = !!of_get_property(node, "autorepeat", NULL);
of_property_read_string(node, "label", &pdata->name);
- i = 0;
for_each_available_child_of_node(node, pp) {
enum of_gpio_flags flags;
- button = &pdata->buttons[i++];
-
button->gpio = of_get_gpio_flags(pp, 0, &flags);
if (button->gpio < 0) {
error = button->gpio;
@@ -694,6 +692,8 @@ gpio_keys_get_devtree_pdata(struct device *dev)
if (of_property_read_u32(pp, "debounce-interval",
&button->debounce_interval))
button->debounce_interval = 5;
+
+ button++;
}
if (pdata->nbuttons == 0)