From 4d83f7a1926540278240033e4255f2c8bc6aed6a Mon Sep 17 00:00:00 2001 From: Aidan MacDonald Date: Tue, 16 Mar 2021 12:06:18 +0000 Subject: Call powermgmt_init_target() before polling the battery In the old position of the call, the first battery reading would be made before initializing the target's power management code. If the target needs to initialize before giving a battery reading, then the first reading would be wrong and the power thread might inappropriately shut down based on a false zero reading. The new position avoids forcing special-case logic onto the target power management code. Change-Id: I483cfabe30c6881d80a1094fd526fa0065523d19 --- firmware/powermgmt.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/firmware/powermgmt.c b/firmware/powermgmt.c index 6cac300cdf..3b56242b21 100644 --- a/firmware/powermgmt.c +++ b/firmware/powermgmt.c @@ -705,14 +705,14 @@ static void power_thread(void) power_thread_inputs = power_input_status(); #endif + /* call target specific init now */ + powermgmt_init_target(); /* initialize voltage averaging (if available) */ average_init(); /* get initial battery level value (in %) */ init_battery_percent(); /* get some initial data for the power curve */ collect_power_history(); - /* call target specific init now */ - powermgmt_init_target(); next_power_hist = current_tick + HZ*60; -- cgit v1.2.3