drivers/pc80/rtc: Refactor clear_cmos variable

After refactoring it is more a status variable rather than
a request.

Change-Id: I50b8099a08b556129416cea50f0ce6fafe6c14cc
Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/38185
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Patrick Rudolph <siro@das-labor.org>
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Kyösti Mälkki 2020-01-04 21:24:57 +02:00
parent 731e58e319
commit fd15c0b8fa
1 changed files with 6 additions and 10 deletions

View File

@ -94,7 +94,7 @@ static bool __cmos_init(bool invalid)
{ {
bool cmos_invalid; bool cmos_invalid;
bool checksum_invalid = false; bool checksum_invalid = false;
bool clear_cmos; bool cleared_cmos = false;
size_t i; size_t i;
/* /*
@ -115,22 +115,19 @@ static bool __cmos_init(bool invalid)
/* See if there is a CMOS checksum error */ /* See if there is a CMOS checksum error */
checksum_invalid = !cmos_checksum_valid(PC_CKS_RANGE_START, checksum_invalid = !cmos_checksum_valid(PC_CKS_RANGE_START,
PC_CKS_RANGE_END, PC_CKS_LOC); PC_CKS_RANGE_END, PC_CKS_LOC);
clear_cmos = false;
} else {
clear_cmos = true;
} }
if (cmos_invalid || invalid) if (cmos_invalid || invalid)
cmos_disable_rtc(); cmos_disable_rtc();
if (invalid || cmos_invalid || checksum_invalid) { if (invalid || cmos_invalid || checksum_invalid) {
if (clear_cmos) { if (!CONFIG(USE_OPTION_TABLE)) {
cmos_write(0, 0x01); cmos_write(0, 0x01);
cmos_write(0, 0x03); cmos_write(0, 0x03);
cmos_write(0, 0x05); cmos_write(0, 0x05);
for (i = 10; i < 128; i++) for (i = 10; i < 128; i++)
cmos_write(0, i); cmos_write(0, i);
cleared_cmos = true;
} }
if (cmos_invalid || invalid) if (cmos_invalid || invalid)
@ -140,9 +137,8 @@ static bool __cmos_init(bool invalid)
invalid ? " Clear requested":"", invalid ? " Clear requested":"",
cmos_invalid ? " Power Problem":"", cmos_invalid ? " Power Problem":"",
checksum_invalid ? " Checksum invalid":"", checksum_invalid ? " Checksum invalid":"",
clear_cmos ? " zeroing cmos":""); cleared_cmos ? " zeroing cmos":"");
} else }
clear_cmos = false;
/* Setup the real time clock */ /* Setup the real time clock */
cmos_write(RTC_CONTROL_DEFAULT, RTC_CONTROL); cmos_write(RTC_CONTROL_DEFAULT, RTC_CONTROL);
@ -165,7 +161,7 @@ static bool __cmos_init(bool invalid)
/* Clear any pending interrupts */ /* Clear any pending interrupts */
cmos_read(RTC_INTR_FLAGS); cmos_read(RTC_INTR_FLAGS);
return clear_cmos; return cleared_cmos;
} }
static void cmos_init_vbnv(bool invalid) static void cmos_init_vbnv(bool invalid)