diff options
Diffstat (limited to 'drivers/staging')
-rw-r--r-- | drivers/staging/panel/panel.c | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/drivers/staging/panel/panel.c b/drivers/staging/panel/panel.c index c54df3948e20..cbc15c120981 100644 --- a/drivers/staging/panel/panel.c +++ b/drivers/staging/panel/panel.c @@ -1756,17 +1756,18 @@ static inline int input_state_high(struct logical_input *input) if (input->high_timer == 0) { char *press_str = input->u.kbd.press_str; - if (press_str[0]) - keypad_send_key(press_str, - sizeof(input->u.kbd.press_str)); + if (press_str[0]) { + int s = sizeof(input->u.kbd.press_str); + keypad_send_key(press_str, s); + } } if (input->u.kbd.repeat_str[0]) { char *repeat_str = input->u.kbd.repeat_str; if (input->high_timer >= KEYPAD_REP_START) { + int s = sizeof(input->u.kbd.repeat_str); input->high_timer -= KEYPAD_REP_DELAY; - keypad_send_key(repeat_str, - sizeof(input->u.kbd.repeat_str)); + keypad_send_key(repeat_str, s); } /* we will need to come back here soon */ inputs_stable = 0; @@ -1802,10 +1803,11 @@ static inline void input_state_falling(struct logical_input *input) if (input->u.kbd.repeat_str[0]) { char *repeat_str = input->u.kbd.repeat_str; - if (input->high_timer >= KEYPAD_REP_START) + if (input->high_timer >= KEYPAD_REP_START) { + int s = sizeof(input->u.kbd.repeat_str); input->high_timer -= KEYPAD_REP_DELAY; - keypad_send_key(repeat_str, - sizeof(input->u.kbd.repeat_str)); + keypad_send_key(repeat_str, s); + } /* we will need to come back here soon */ inputs_stable = 0; } @@ -1822,9 +1824,10 @@ static inline void input_state_falling(struct logical_input *input) release_fct(input->u.std.release_data); } else if (input->type == INPUT_TYPE_KBD) { char *release_str = input->u.kbd.release_str; - if (release_str[0]) - keypad_send_key(release_str, - sizeof(input->u.kbd.release_str)); + if (release_str[0]) { + int s = sizeof(input->u.kbd.release_str); + keypad_send_key(release_str, s); + } } input->state = INPUT_ST_LOW; |