summaryrefslogtreecommitdiff
path: root/drivers/mailbox/mailbox-uclass.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/mailbox/mailbox-uclass.c')
-rw-r--r--drivers/mailbox/mailbox-uclass.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/mailbox/mailbox-uclass.c b/drivers/mailbox/mailbox-uclass.c
index 4bf4987ce0a..fef437a4281 100644
--- a/drivers/mailbox/mailbox-uclass.c
+++ b/drivers/mailbox/mailbox-uclass.c
@@ -132,6 +132,15 @@ int mbox_recv(struct mbox_chan *chan, void *data, ulong timeout_us)
debug("%s(chan=%p, data=%p, timeout_us=%ld)\n", __func__, chan, data,
timeout_us);
+ /*
+ * Some shared memory mailboxes may have empty receive operation,
+ * because the data are polled by upper layers directly from the
+ * shared memory region, and there is no completion interrupt or
+ * bit of any sort.
+ */
+ if (!ops->recv)
+ return 0;
+
start_time = timer_get_us();
/*
* Account for partial us ticks, but if timeout_us is 0, ensure we