]> Pileus Git - ~andy/linux/blobdiff - drivers/input/keyboard/stmpe-keypad.c
Merge tag 'x86-mce-merge' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras
[~andy/linux] / drivers / input / keyboard / stmpe-keypad.c
index 9397cf9c625cc8fb68514f9d9263b4385773dd71..470a8778dec11637b22ebb990246da63b7c99de2 100644 (file)
@@ -289,19 +289,17 @@ static int __devinit stmpe_keypad_probe(struct platform_device *pdev)
        input->id.bustype = BUS_I2C;
        input->dev.parent = &pdev->dev;
 
-       input_set_capability(input, EV_MSC, MSC_SCAN);
+       ret = matrix_keypad_build_keymap(plat->keymap_data, NULL,
+                                        STMPE_KEYPAD_MAX_ROWS,
+                                        STMPE_KEYPAD_MAX_COLS,
+                                        keypad->keymap, input);
+       if (ret)
+               goto out_freeinput;
 
-       __set_bit(EV_KEY, input->evbit);
+       input_set_capability(input, EV_MSC, MSC_SCAN);
        if (!plat->no_autorepeat)
                __set_bit(EV_REP, input->evbit);
 
-       input->keycode = keypad->keymap;
-       input->keycodesize = sizeof(keypad->keymap[0]);
-       input->keycodemax = ARRAY_SIZE(keypad->keymap);
-
-       matrix_keypad_build_keymap(plat->keymap_data, STMPE_KEYPAD_ROW_SHIFT,
-                                  input->keycode, input->keybit);
-
        for (i = 0; i < plat->keymap_data->keymap_size; i++) {
                unsigned int key = plat->keymap_data->keymap[i];