main: reload EEPROM EDID when read+save failed

This commit is contained in:
King Kévin 2021-08-17 08:56:33 +02:00
parent 03d4874605
commit 523153fcf0
1 changed files with 18 additions and 1 deletions

19
main.c
View File

@ -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");