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:
parent
731e58e319
commit
fd15c0b8fa
|
@ -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)
|
||||||
|
|
Loading…
Reference in New Issue