Re: [PATCH 1/3] mailbox: pcc: Notify clients on polled completion
From: Adam Young
Date: Fri Jul 24 2026 - 13:13:51 EST
On 7/23/26 15:45, Sudeep Holla wrote:
On Thu, Jul 23, 2026 at 12:03:45PM -0400, Adam Young wrote:
On 7/17/26 03:56, Sudeep Holla wrote:Thanks for testing IRQ mode.
PCC channels without a platform interrupt rely on the mailboxMy code doesn't poll, so I cannot really claim to have tested it, but it
polling path to detect command completion.
That path currently only reports transmit completion to the mailbox
core, so clients that wait for their receive callback do not get
notified when the command completes.
Call mbox_chan_received_data() when polling observes completion on a
channel without a platform IRQ, matching the interrupt-driven
completion path.
Reported-by: Cristian Marussi <cristian.marussi@xxxxxxx>
Acked-by: Huisong Li <lihuisong@xxxxxxxxxx>
Signed-off-by: Sudeep Holla <sudeep.holla@xxxxxxxxxx>
---
drivers/mailbox/pcc.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/drivers/mailbox/pcc.c b/drivers/mailbox/pcc.c
index 636879ae1db7..d96b8b54e77e 100644
--- a/drivers/mailbox/pcc.c
+++ b/drivers/mailbox/pcc.c
@@ -449,7 +449,15 @@ static bool pcc_last_tx_done(struct mbox_chan *chan)
{
struct pcc_chan_info *pchan = chan->con_priv;
- return pcc_mbox_cmd_complete_check(pchan);
+ if (!(chan->txdone_method & MBOX_TXDONE_BY_POLL))
+ return false;
+
+ if (!pcc_mbox_cmd_complete_check(pchan))
+ return false;
+
+ mbox_chan_received_data(chan, NULL);
+
+ return true;
}
/**
does not break the existing IRQ based driver mechanism.
I can claim to have read through the code and confirm that it is comparableThanks for taking a look and reviewing it.
to what happens on the IRQ case: It clears the cmd_complete field and
calls mbox_chan_received_data.
However, it does not clear pchan->chan_in_useIIRC I think we set the flag only when irq > 0, no ?
= false; (Which should now be a WRITE_ONCE) and I would like to confirm that
is not an oversight before providing a reviewed-by tag.
That is right. So, this code is good.
Reviewed-by: Adam Young <admiyo@xxxxxxxxxxxxxxxxxxxxxx>