summaryrefslogtreecommitdiff
path: root/drivers/input/keyboard/mxc_keyb.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/input/keyboard/mxc_keyb.c')
-rw-r--r--drivers/input/keyboard/mxc_keyb.c23
1 files changed, 12 insertions, 11 deletions
diff --git a/drivers/input/keyboard/mxc_keyb.c b/drivers/input/keyboard/mxc_keyb.c
index 248b8e560903..99dd7cf51cb5 100644
--- a/drivers/input/keyboard/mxc_keyb.c
+++ b/drivers/input/keyboard/mxc_keyb.c
@@ -774,19 +774,8 @@ static int mxc_kpp_probe(struct platform_device *pdev)
kpp_dev.kpp_rows = keypad->rowmax;
key_pad_enabled = 0;
- /*
- * Request for IRQ number for keypad port. The Interrupt handler
- * function (mxc_kpp_interrupt) is called when ever interrupt occurs on
- * keypad port.
- */
irq = platform_get_irq(pdev, 0);
keypad->irq = irq;
- retval = request_irq(irq, mxc_kpp_interrupt, 0, MOD_NAME, MOD_NAME);
- if (retval) {
- pr_debug("KPP: request_irq(%d) returned error %d\n",
- MXC_INT_KPP, retval);
- return retval;
- }
/* Enable keypad clock */
kpp_clk = clk_get(&pdev->dev, "kpp_clk");
@@ -915,6 +904,18 @@ static int mxc_kpp_probe(struct platform_device *pdev)
/* Initialize the polling timer */
init_timer(&kpp_dev.poll_timer);
+ /*
+ * Request for IRQ number for keypad port. The Interrupt handler
+ * function (mxc_kpp_interrupt) is called when ever interrupt occurs on
+ * keypad port.
+ */
+ retval = request_irq(irq, mxc_kpp_interrupt, 0, MOD_NAME, MOD_NAME);
+ if (retval) {
+ pr_debug("KPP: request_irq(%d) returned error %d\n",
+ MXC_INT_KPP, retval);
+ goto err3;
+ }
+
/* By default, devices should wakeup if they can */
/* So keypad is set as "should wakeup" as it can */
device_init_wakeup(&pdev->dev, 1);