diff options
Diffstat (limited to 'common/power_button.c')
-rw-r--r-- | common/power_button.c | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/common/power_button.c b/common/power_button.c index 484d25154a..36d7e510d2 100644 --- a/common/power_button.c +++ b/common/power_button.c @@ -184,15 +184,6 @@ static void power_button_change_deferred(void) } DECLARE_DEFERRED(power_button_change_deferred); -static void power_button_simulate_deferred(void) -{ - ccprintf("Simulating %s release.\n", power_button.name); - simulate_power_pressed = 0; - power_button_is_stable = 0; - power_button_change_deferred(); -} -DECLARE_DEFERRED(power_button_simulate_deferred); - void power_button_interrupt(enum gpio_signal signal) { /* @@ -214,9 +205,15 @@ void power_button_simulate_press(unsigned int duration) ccprintf("Simulating %d ms %s press.\n", duration, power_button.name); simulate_power_pressed = 1; power_button_is_stable = 0; - power_button_change_deferred(); - hook_call_deferred(&power_button_simulate_deferred_data, - duration * MSEC); + hook_call_deferred(&power_button_change_deferred_data, 0); + + if (duration > 0) + msleep(duration); + + ccprintf("Simulating %s release.\n", power_button.name); + simulate_power_pressed = 0; + power_button_is_stable = 0; + hook_call_deferred(&power_button_change_deferred_data, 0); } /*****************************************************************************/ |