drivers/pc80/rtc: Remove duplicate cmos_chksum_valid()

Change-Id: I5a4b86921876c24cd1d310b674119b960c3d2fd6
Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/38194
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
diff --git a/src/drivers/pc80/rtc/Makefile.inc b/src/drivers/pc80/rtc/Makefile.inc
index 998b7e7..749306bf 100644
--- a/src/drivers/pc80/rtc/Makefile.inc
+++ b/src/drivers/pc80/rtc/Makefile.inc
@@ -1,6 +1,7 @@
 ifeq ($(CONFIG_ARCH_X86),y)
 
-bootblock-$(CONFIG_DRIVERS_MC146818)	+= mc146818rtc_boot.c
+all-$(CONFIG_DRIVERS_MC146818)	+= mc146818rtc_boot.c
+
 bootblock-$(CONFIG_DRIVERS_MC146818)	+= mc146818rtc.c
 postcar-$(CONFIG_DRIVERS_MC146818)	+= mc146818rtc.c
 romstage-$(CONFIG_DRIVERS_MC146818)	+= mc146818rtc.c
diff --git a/src/drivers/pc80/rtc/mc146818rtc.c b/src/drivers/pc80/rtc/mc146818rtc.c
index b870da2..715e440 100644
--- a/src/drivers/pc80/rtc/mc146818rtc.c
+++ b/src/drivers/pc80/rtc/mc146818rtc.c
@@ -53,7 +53,7 @@
 	rtc_set(&time);
 }
 
-static int cmos_checksum_valid(int range_start, int range_end, int cks_loc)
+int cmos_checksum_valid(int range_start, int range_end, int cks_loc)
 {
 	int i;
 	u16 sum, old_sum;
@@ -69,7 +69,7 @@
 	return sum == old_sum;
 }
 
-static void cmos_set_checksum(int range_start, int range_end, int cks_loc)
+void cmos_set_checksum(int range_start, int range_end, int cks_loc)
 {
 	int i;
 	u16 sum;
@@ -149,8 +149,7 @@
 
 	if (CONFIG(USE_OPTION_TABLE)) {
 		/* See if there is a LB CMOS checksum error */
-		checksum_invalid = !cmos_checksum_valid(LB_CKS_RANGE_START,
-				LB_CKS_RANGE_END, LB_CKS_LOC);
+		checksum_invalid = !cmos_lb_cks_valid();
 		if (checksum_invalid)
 			printk(BIOS_DEBUG, "RTC: coreboot checksum invalid\n");
 
diff --git a/src/drivers/pc80/rtc/mc146818rtc_boot.c b/src/drivers/pc80/rtc/mc146818rtc_boot.c
index 2998c73..e599aff 100644
--- a/src/drivers/pc80/rtc/mc146818rtc_boot.c
+++ b/src/drivers/pc80/rtc/mc146818rtc_boot.c
@@ -19,27 +19,14 @@
 #if CONFIG(USE_OPTION_TABLE)
 #include <option_table.h>
 
-int cmos_chksum_valid(void)
+int cmos_lb_cks_valid(void)
 {
-	unsigned char addr;
-	u16 sum, old_sum;
-
-	sum = 0;
-	/* Compute the cmos checksum */
-	for (addr = LB_CKS_RANGE_START; addr <= LB_CKS_RANGE_END; addr++)
-		sum += cmos_read(addr);
-
-	/* Read the stored checksum */
-	old_sum = cmos_read(LB_CKS_LOC) << 8;
-	old_sum |= cmos_read(LB_CKS_LOC + 1);
-
-	return sum == old_sum;
+	return cmos_checksum_valid(LB_CKS_RANGE_START, LB_CKS_RANGE_END, LB_CKS_LOC);
 }
 
 void sanitize_cmos(void)
 {
-	if (cmos_error() || !cmos_chksum_valid() ||
-	    CONFIG(STATIC_OPTION_TABLE)) {
+	if (cmos_error() || !cmos_lb_cks_valid() || CONFIG(STATIC_OPTION_TABLE)) {
 		size_t length = 128;
 		const unsigned char *cmos_default =
 			cbfs_boot_map_with_leak("cmos.default",
@@ -83,7 +70,7 @@
 {
 	unsigned char byte;
 
-	if (!CONFIG(USE_OPTION_TABLE) || cmos_error() || !cmos_chksum_valid()) {
+	if (!CONFIG(USE_OPTION_TABLE) || cmos_error() || !cmos_lb_cks_valid()) {
 		/* Invalid CMOS checksum detected!
 		 * Force fallback boot...
 		 */
diff --git a/src/include/pc80/mc146818rtc.h b/src/include/pc80/mc146818rtc.h
index 5fd0729..91413d1 100644
--- a/src/include/pc80/mc146818rtc.h
+++ b/src/include/pc80/mc146818rtc.h
@@ -176,7 +176,10 @@
 void cmos_init(bool invalid);
 void cmos_check_update_date(void);
 int cmos_error(void);
-int cmos_chksum_valid(void);
+int cmos_lb_cks_valid(void);
+
+int cmos_checksum_valid(int range_start, int range_end, int cks_loc);
+void cmos_set_checksum(int range_start, int range_end, int cks_loc);
 
 enum cb_err set_option(const char *name, void *val);
 enum cb_err get_option(void *dest, const char *name);