forked from Minki/linux
Input: tca8418_keypad - hide gcc-4.9 -Wmaybe-uninitialized warning
Older versions of gcc warn about the tca8418_irq_handler function as they can't keep track of the variable assignment inside of the loop when using the -Wmaybe-unintialized flag: drivers/input/keyboard/tca8418_keypad.c: In function ‘tca8418_irq_handler’: drivers/input/keyboard/tca8418_keypad.c:172:9: error: ‘reg’ may be used uninitialized in this function [-Werror=maybe-uninitialized] drivers/input/keyboard/tca8418_keypad.c:165:5: note: ‘reg’ was declared here This is fixed in gcc-6, but it's possible to rearrange the code in a way that avoids the warning on older compilers as well. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
This commit is contained in:
parent
c2c4ba8202
commit
ea4348c846
@ -164,11 +164,18 @@ static void tca8418_read_keypad(struct tca8418_keypad *keypad_data)
|
|||||||
int error, col, row;
|
int error, col, row;
|
||||||
u8 reg, state, code;
|
u8 reg, state, code;
|
||||||
|
|
||||||
/* Initial read of the key event FIFO */
|
do {
|
||||||
error = tca8418_read_byte(keypad_data, REG_KEY_EVENT_A, ®);
|
error = tca8418_read_byte(keypad_data, REG_KEY_EVENT_A, ®);
|
||||||
|
if (error < 0) {
|
||||||
|
dev_err(&keypad_data->client->dev,
|
||||||
|
"unable to read REG_KEY_EVENT_A\n");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Assume that key code 0 signifies empty FIFO */
|
||||||
|
if (reg <= 0)
|
||||||
|
break;
|
||||||
|
|
||||||
/* Assume that key code 0 signifies empty FIFO */
|
|
||||||
while (error >= 0 && reg > 0) {
|
|
||||||
state = reg & KEY_EVENT_VALUE;
|
state = reg & KEY_EVENT_VALUE;
|
||||||
code = reg & KEY_EVENT_CODE;
|
code = reg & KEY_EVENT_CODE;
|
||||||
|
|
||||||
@ -184,11 +191,7 @@ static void tca8418_read_keypad(struct tca8418_keypad *keypad_data)
|
|||||||
|
|
||||||
/* Read for next loop */
|
/* Read for next loop */
|
||||||
error = tca8418_read_byte(keypad_data, REG_KEY_EVENT_A, ®);
|
error = tca8418_read_byte(keypad_data, REG_KEY_EVENT_A, ®);
|
||||||
}
|
} while (1);
|
||||||
|
|
||||||
if (error < 0)
|
|
||||||
dev_err(&keypad_data->client->dev,
|
|
||||||
"unable to read REG_KEY_EVENT_A\n");
|
|
||||||
|
|
||||||
input_sync(input);
|
input_sync(input);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user