From a357a3f6237e273f19fde614b6af26fe13014351 Mon Sep 17 00:00:00 2001 From: Rahix <rahix@rahix.de> Date: Tue, 20 Aug 2019 15:24:49 +0200 Subject: [PATCH] feat(lifecycle): Properly reset hardware Signed-off-by: Rahix <rahix@rahix.de> --- epicardium/modules/hardware.c | 20 +++++++++++++++++++- epicardium/modules/lifecycle.c | 8 +++++--- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/epicardium/modules/hardware.c b/epicardium/modules/hardware.c index f753d85a..a93c8c6d 100644 --- a/epicardium/modules/hardware.c +++ b/epicardium/modules/hardware.c @@ -173,6 +173,24 @@ int hardware_init(void) */ int hardware_reset(void) { - card10_init(); + /* + * API Dispatcher & API Interrupts + */ + api_interrupt_init(); + api_dispatcher_init(); + + /* + * LEDs + */ + leds_init(); + epic_leds_set_rocket(0, 0); + epic_leds_set_rocket(1, 0); + epic_leds_set_rocket(2, 0); + + /* + * Display + */ + display_init_slim(); + return 0; } diff --git a/epicardium/modules/lifecycle.c b/epicardium/modules/lifecycle.c index b3ce83c1..992b0d5f 100644 --- a/epicardium/modules/lifecycle.c +++ b/epicardium/modules/lifecycle.c @@ -114,10 +114,12 @@ static int do_load(struct load_info *info) core1_wait_ready(); /* - * Reinitialize API + * Reinitialize Hardware & Drivers */ - api_dispatcher_init(); - api_interrupt_init(); + res = hardware_reset(); + if (res < 0) { + return res; + } switch (info->type) { case PL_PYTHON_SCRIPT: -- GitLab