summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/drivers/pc80/rtc/post.c26
-rw-r--r--src/include/console/console.h25
2 files changed, 27 insertions, 24 deletions
diff --git a/src/drivers/pc80/rtc/post.c b/src/drivers/pc80/rtc/post.c
index e14367424e..5bee5be812 100644
--- a/src/drivers/pc80/rtc/post.c
+++ b/src/drivers/pc80/rtc/post.c
@@ -86,8 +86,11 @@ void cmos_post_code(u8 value)
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 @@ static void __unused cmos_post_extra(u32 value)
spin_unlock(&cmos_post_lock);
}
-#if CONFIG(CMOS_POST_EXTRA)
-void post_log_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);
- }
-}
-
-void post_log_clear(void)
+void cmos_post_path(const struct device *dev)
{
- cmos_post_extra(0);
+ /* 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);
}
-#endif /* CONFIG_CMOS_POST_EXTRA */
diff --git a/src/include/console/console.h b/src/include/console/console.h
index f9e9fe24c3..95c0e7fe1a 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, ...);