OSDN Git Service

Input: tc3589x-keypad - remove unnecessary checks
authorDmitry Torokhov <dmitry.torokhov@gmail.com>
Sat, 21 Apr 2012 05:33:09 +0000 (22:33 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Sat, 21 Apr 2012 06:08:48 +0000 (23:08 -0700)
settle_time and debounce_period are u8 and thus can not be greater than
TC3589x_MAX_DEBOUNCE_SETTLE which is 255.

There also no need to mask out nibbles form board->krow and board->kcol
as we validate that they are in correct range.

Reported-by: Werner <w.landgraf@ru.ru>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
drivers/input/keyboard/tc3589x-keypad.c

index 2dee3e4..f4da2a7 100644 (file)
@@ -96,21 +96,15 @@ static int tc3589x_keypad_init_key_hardware(struct tc_keypad *keypad)
 {
        int ret;
        struct tc3589x *tc3589x = keypad->tc3589x;
-       u8 settle_time = keypad->board->settle_time;
-       u8 dbounce_period = keypad->board->debounce_period;
-       u8 rows = keypad->board->krow & 0xf;    /* mask out the nibble */
-       u8 column = keypad->board->kcol & 0xf;  /* mask out the nibble */
-
-       /* validate platform configurations */
-       if (keypad->board->kcol > TC3589x_MAX_KPCOL ||
-           keypad->board->krow > TC3589x_MAX_KPROW ||
-           keypad->board->debounce_period > TC3589x_MAX_DEBOUNCE_SETTLE ||
-           keypad->board->settle_time > TC3589x_MAX_DEBOUNCE_SETTLE)
+       const struct tc3589x_keypad_platform_data *board = keypad->board;
+
+       /* validate platform configuration */
+       if (board->kcol > TC3589x_MAX_KPCOL || board->krow > TC3589x_MAX_KPROW)
                return -EINVAL;
 
        /* configure KBDSIZE 4 LSbits for cols and 4 MSbits for rows */
        ret = tc3589x_reg_write(tc3589x, TC3589x_KBDSIZE,
-                       (rows << KP_ROW_SHIFT) | column);
+                       (board->krow << KP_ROW_SHIFT) | board->kcol);
        if (ret < 0)
                return ret;
 
@@ -124,12 +118,14 @@ static int tc3589x_keypad_init_key_hardware(struct tc_keypad *keypad)
                return ret;
 
        /* Configure settle time */
-       ret = tc3589x_reg_write(tc3589x, TC3589x_KBDSETTLE_REG, settle_time);
+       ret = tc3589x_reg_write(tc3589x, TC3589x_KBDSETTLE_REG,
+                               board->settle_time);
        if (ret < 0)
                return ret;
 
        /* Configure debounce time */
-       ret = tc3589x_reg_write(tc3589x, TC3589x_KBDBOUNCE, dbounce_period);
+       ret = tc3589x_reg_write(tc3589x, TC3589x_KBDBOUNCE,
+                               board->debounce_period);
        if (ret < 0)
                return ret;