diff options
Diffstat (limited to 'drivers/input/keyboard/gpio_keys.c')
| -rw-r--r-- | drivers/input/keyboard/gpio_keys.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/input/keyboard/gpio_keys.c b/drivers/input/keyboard/gpio_keys.c index eb3006361ee..6e6145b9a4c 100644 --- a/drivers/input/keyboard/gpio_keys.c +++ b/drivers/input/keyboard/gpio_keys.c | |||
| @@ -324,7 +324,12 @@ static void gpio_keys_report_event(struct gpio_button_data *bdata) | |||
| 324 | unsigned int type = button->type ?: EV_KEY; | 324 | unsigned int type = button->type ?: EV_KEY; |
| 325 | int state = (gpio_get_value_cansleep(button->gpio) ? 1 : 0) ^ button->active_low; | 325 | int state = (gpio_get_value_cansleep(button->gpio) ? 1 : 0) ^ button->active_low; |
| 326 | 326 | ||
| 327 | input_event(input, type, button->code, !!state); | 327 | if (type == EV_ABS) { |
| 328 | if (state) | ||
| 329 | input_event(input, type, button->code, button->value); | ||
| 330 | } else { | ||
| 331 | input_event(input, type, button->code, !!state); | ||
| 332 | } | ||
| 328 | input_sync(input); | 333 | input_sync(input); |
| 329 | } | 334 | } |
| 330 | 335 | ||
| @@ -363,7 +368,7 @@ static int __devinit gpio_keys_setup_key(struct platform_device *pdev, | |||
| 363 | struct gpio_button_data *bdata, | 368 | struct gpio_button_data *bdata, |
| 364 | struct gpio_keys_button *button) | 369 | struct gpio_keys_button *button) |
| 365 | { | 370 | { |
| 366 | char *desc = button->desc ? button->desc : "gpio_keys"; | 371 | const char *desc = button->desc ? button->desc : "gpio_keys"; |
| 367 | struct device *dev = &pdev->dev; | 372 | struct device *dev = &pdev->dev; |
| 368 | unsigned long irqflags; | 373 | unsigned long irqflags; |
| 369 | int irq, error; | 374 | int irq, error; |
| @@ -468,7 +473,7 @@ static int __devinit gpio_keys_probe(struct platform_device *pdev) | |||
| 468 | platform_set_drvdata(pdev, ddata); | 473 | platform_set_drvdata(pdev, ddata); |
| 469 | input_set_drvdata(input, ddata); | 474 | input_set_drvdata(input, ddata); |
| 470 | 475 | ||
| 471 | input->name = pdev->name; | 476 | input->name = pdata->name ? : pdev->name; |
| 472 | input->phys = "gpio-keys/input0"; | 477 | input->phys = "gpio-keys/input0"; |
| 473 | input->dev.parent = &pdev->dev; | 478 | input->dev.parent = &pdev->dev; |
| 474 | input->open = gpio_keys_open; | 479 | input->open = gpio_keys_open; |
