> -----邮件原件----- > 发件人: U-Boot <[email protected]> 代表 Marek Vasut > 发送时间: 2025年10月28日 0:39 > 收件人: [email protected] > 抄送: Marek Vasut <[email protected]>; Alice Guo > <[email protected]>; Jamie Gibbons <[email protected]>; > Nobuhiro Iwamatsu <[email protected]>; Peng Fan <[email protected]>; > Tom Rini <[email protected]>; Tuyen Dang <[email protected]>; > Viorel Suman <[email protected]>; Ye Li <[email protected]> > 主题: [PATCH] mailbox: Allow operation without .recv callback > > 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. Allow empty .recv > callback, > and if the .recv callback is empty, exit from mbox_recv() right away, because > any > polling for completion here would be meaningless. > > Signed-off-by: Marek Vasut <[email protected]> > --- > Cc: Alice Guo <[email protected]> > Cc: Jamie Gibbons <[email protected]> > Cc: Nobuhiro Iwamatsu <[email protected]> > Cc: Peng Fan <[email protected]> > Cc: Tom Rini <[email protected]> > Cc: Tuyen Dang <[email protected]> > Cc: Viorel Suman <[email protected]> > Cc: Ye Li <[email protected]> > Cc: [email protected] > --- > drivers/mailbox/mailbox-uclass.c | 9 +++++++++ > 1 file changed, 9 insertions(+) > > 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 > -- > 2.51.0
Reviewed-by: Alice Guo <[email protected]>

