drivers/pc80/rtc: Clean up post_log_path()
Change-Id: I605d39d907e083e73af4c72607216384e7ce166a
Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/38190
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Nico Huber <nico.h@gmx.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
diff --git a/src/drivers/pc80/rtc/post.c b/src/drivers/pc80/rtc/post.c
index e143674..5bee5be 100644
--- a/src/drivers/pc80/rtc/post.c
+++ b/src/drivers/pc80/rtc/post.c
@@ -86,8 +86,11 @@
spin_unlock(&cmos_post_lock);
}
-static void __unused cmos_post_extra(u32 value)
+void cmos_post_extra(u32 value)
{
+ if (!CONFIG(CMOS_POST_EXTRA))
+ return;
+
spin_lock(&cmos_post_lock);
switch (cmos_read(CMOS_POST_BANK_OFFSET)) {
@@ -102,20 +105,11 @@
spin_unlock(&cmos_post_lock);
}
-#if CONFIG(CMOS_POST_EXTRA)
-void post_log_path(const struct device *dev)
+void cmos_post_path(const struct device *dev)
{
- if (dev) {
- /* Encode path into lower 3 bytes */
- u32 path = dev_path_encode(dev);
- /* Upper byte contains the log type */
- path |= CMOS_POST_EXTRA_DEV_PATH << 24;
- cmos_post_extra(path);
- }
+ /* Encode path into lower 3 bytes */
+ u32 path = dev_path_encode(dev);
+ /* Upper byte contains the log type */
+ path |= CMOS_POST_EXTRA_DEV_PATH << 24;
+ cmos_post_extra(path);
}
-
-void post_log_clear(void)
-{
- cmos_post_extra(0);
-}
-#endif /* CONFIG_CMOS_POST_EXTRA */
diff --git a/src/include/console/console.h b/src/include/console/console.h
index f9e9fe2..95c0e7f 100644
--- a/src/include/console/console.h
+++ b/src/include/console/console.h
@@ -16,18 +16,27 @@
#include <console/vtxprintf.h>
+struct device;
+
void post_code(u8 value);
void arch_post_code(u8 value);
void cmos_post_code(u8 value);
+void cmos_post_extra(u32 value);
+void cmos_post_path(const struct device *dev);
int cmos_post_previous_boot(u8 *code, u32 *extra);
-#if CONFIG(CMOS_POST_EXTRA)
-struct device;
-void post_log_path(const struct device *dev);
-void post_log_clear(void);
-#else
-#define post_log_path(x) do {} while (0)
-#define post_log_clear() do {} while (0)
-#endif
+
+static inline void post_log_path(const struct device *dev)
+{
+ if (CONFIG(CMOS_POST) && dev)
+ cmos_post_path(dev);
+}
+
+static inline void post_log_clear(void)
+{
+ if (CONFIG(CMOS_POST))
+ cmos_post_extra(0);
+}
+
/* this function is weak and can be overridden by a mainboard function. */
void mainboard_post(u8 value);
void __noreturn die(const char *fmt, ...);