summaryrefslogtreecommitdiff
path: root/common/power_button.c
diff options
context:
space:
mode:
Diffstat (limited to 'common/power_button.c')
-rw-r--r--common/power_button.c21
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);
}
/*****************************************************************************/