]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - drivers/input/keyboard/gpio_keys.c
Merge remote-tracking branch 'input-current/for-linus'
[karo-tx-linux.git] / drivers / input / keyboard / gpio_keys.c
index 9d517ca7eb5aad432249d34ed8a710588510bd21..bef317ff7352ffd73885ea6a11efd58efba9663d 100644 (file)
@@ -341,8 +341,14 @@ static void gpio_keys_gpio_report_event(struct gpio_button_data *bdata)
        const struct gpio_keys_button *button = bdata->button;
        struct input_dev *input = bdata->input;
        unsigned int type = button->type ?: EV_KEY;
-       int state = (gpio_get_value_cansleep(button->gpio) ? 1 : 0) ^ button->active_low;
+       int state = gpio_get_value_cansleep(button->gpio);
 
+       if (state < 0) {
+               dev_err(input->dev.parent, "failed to get gpio state\n");
+               return;
+       }
+
+       state = (state ? 1 : 0) ^ button->active_low;
        if (type == EV_ABS) {
                if (state)
                        input_event(input, type, button->code, button->value);