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 <[email protected]>

diff --git a/drivers/input/keyboard/tnetv107x-keypad.c 
b/drivers/input/keyboard/tnetv107x-keypad.c
index 5f7b427..8bd24d5 100644
--- a/drivers/input/keyboard/tnetv107x-keypad.c
+++ b/drivers/input/keyboard/tnetv107x-keypad.c
@@ -60,8 +60,8 @@ struct keypad_data {
        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];
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to