aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/lock.c4
-rw-r--r--hw/fsp/fsp-op-panel.c9
2 files changed, 10 insertions, 3 deletions
diff --git a/core/lock.c b/core/lock.c
index 6a8282f..d916141 100644
--- a/core/lock.c
+++ b/core/lock.c
@@ -31,10 +31,10 @@ bool bust_locks = true;
static void lock_error(struct lock *l, const char *reason, uint16_t err)
{
- op_display(OP_FATAL, OP_MOD_LOCK, err);
-
fprintf(stderr, "LOCK ERROR: %s @%p (state: 0x%016lx)\n",
reason, l, l->lock_val);
+ op_display(OP_FATAL, OP_MOD_LOCK, err);
+
abort();
}
diff --git a/hw/fsp/fsp-op-panel.c b/hw/fsp/fsp-op-panel.c
index 0693939..18cdd28 100644
--- a/hw/fsp/fsp-op-panel.c
+++ b/hw/fsp/fsp-op-panel.c
@@ -63,7 +63,14 @@ void op_display(enum op_severity sev, enum op_module mod, uint16_t code)
* in case of fatal errors
*/
fsp_fillmsg(&op_msg, FSP_CMD_DISP_SRC_DIRECT, 3, 1, w0, w1);
- fsp_sync_msg(&op_msg, false);
+
+ if (sev == OP_FATAL) {
+ if(fsp_queue_msg(&op_msg, NULL))
+ prerror("Failed to queue FSP message for OP PANEL\n");
+ } else {
+ fsp_sync_msg(&op_msg, false);
+ }
+
unlock(&op_lock);
}