From 523153fcf0ea0e7b56be2539d6067b660dd7586b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?King=20K=C3=A9vin?= Date: Tue, 17 Aug 2021 08:56:33 +0200 Subject: [PATCH] main: reload EEPROM EDID when read+save failed --- main.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/main.c b/main.c index 9a26eaf..10d28af 100644 --- a/main.c +++ b/main.c @@ -339,7 +339,24 @@ void main(void) if (edid_valid) { // read EDID is valid puts("I²C EDID valid\r\n"); IWDG_KR = IWDG_KR_KEY_REFRESH; // reset watchdog - led_error = !save_edid(); // save to EEPROM + +/* + puts("EDID data:\r\n"); + for (uint16_t i = 0; i < ARRAY_LENGTH(edid); i++) { + puth(edid[i]); + putc(' '); + } + puts("\r\n"); +*/ + + if (save_edid()) {; // save to EEPROM + puts("I²C EDID saved to EEPROM\r\n"); + } else { + led_error = true; // indicate write error + puts("could not save EDID to EEPROM\r\n"); + load_edid(); // re-load EDID from EEPROM + edid_valid = (0 != edid_length()); // verify if EDID is valid + } IWDG_KR = IWDG_KR_KEY_REFRESH; // reset watchdog } else { // read EDID is not valid puts("I²C EDID not valid, reloading from EEPROM\r\n");