diff options
Diffstat (limited to 'drivers/input/keyboard/omap4-keypad.c')
-rw-r--r-- | drivers/input/keyboard/omap4-keypad.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/drivers/input/keyboard/omap4-keypad.c b/drivers/input/keyboard/omap4-keypad.c index 28da0e46968..aed5f6999ce 100644 --- a/drivers/input/keyboard/omap4-keypad.c +++ b/drivers/input/keyboard/omap4-keypad.c | |||
@@ -322,20 +322,19 @@ static int __devinit omap4_keypad_probe(struct platform_device *pdev) | |||
322 | input_dev->open = omap4_keypad_open; | 322 | input_dev->open = omap4_keypad_open; |
323 | input_dev->close = omap4_keypad_close; | 323 | input_dev->close = omap4_keypad_close; |
324 | 324 | ||
325 | input_dev->keycode = keypad_data->keymap; | 325 | error = matrix_keypad_build_keymap(pdata->keymap_data, NULL, |
326 | input_dev->keycodesize = sizeof(keypad_data->keymap[0]); | 326 | pdata->rows, pdata->cols, |
327 | input_dev->keycodemax = max_keys; | 327 | keypad_data->keymap, input_dev); |
328 | if (error) { | ||
329 | dev_err(&pdev->dev, "failed to build keymap\n"); | ||
330 | goto err_free_input; | ||
331 | } | ||
328 | 332 | ||
329 | __set_bit(EV_KEY, input_dev->evbit); | ||
330 | __set_bit(EV_REP, input_dev->evbit); | 333 | __set_bit(EV_REP, input_dev->evbit); |
331 | |||
332 | input_set_capability(input_dev, EV_MSC, MSC_SCAN); | 334 | input_set_capability(input_dev, EV_MSC, MSC_SCAN); |
333 | 335 | ||
334 | input_set_drvdata(input_dev, keypad_data); | 336 | input_set_drvdata(input_dev, keypad_data); |
335 | 337 | ||
336 | matrix_keypad_build_keymap(pdata->keymap_data, row_shift, | ||
337 | input_dev->keycode, input_dev->keybit); | ||
338 | |||
339 | error = request_irq(keypad_data->irq, omap4_keypad_interrupt, | 338 | error = request_irq(keypad_data->irq, omap4_keypad_interrupt, |
340 | IRQF_TRIGGER_RISING, | 339 | IRQF_TRIGGER_RISING, |
341 | "omap4-keypad", keypad_data); | 340 | "omap4-keypad", keypad_data); |