There is a bug in keypad_probe() where we do:
	kp->irq_press   = platform_get_irq_byname(pdev, "press");
	kp->irq_release = platform_get_irq_byname(pdev, "release");
	if (kp->irq_press < 0 || kp->irq_release < 0) {
The problem is that these irq variables are unsigned so the error
handling doesn't work.  I've changed them to signed values.
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
        struct clk                      *clk;
        struct device                   *dev;
        spinlock_t                      lock;
-       u32                             irq_press;
-       u32                             irq_release;
+       int                             irq_press;
+       int                             irq_release;
        int                             rows, cols, row_shift;
        int                             debounce_ms, active_low;
        u32                             prev_keys[3];