Skip to content

Commit a5695de

Browse files
sudeep-hollaJassi Brar
authored andcommitted
mailbox: pcc: Wire up ->last_tx_done() for PCC channels
Some PCC users poll for completion between transfers and benefit from the knowledge of previous Tx completion check through the mailbox framework's ->last_tx_done() op. Hook up the last_tx_done callback in the PCC mailbox driver so the mailbox framework can correctly query the completion status of the last transmitted message. This aligns PCC with other controllers that already implement such last_tx_done status query. No functional change unless callers use ->last_tx_done(). Normal Tx and IRQ paths are unchanged. This change just improves synchronization and avoids unnecessary timeouts for non-interrupt driven channels by ensuring correct completion detection for PCC channels that don’t rely on interrupts. Signed-off-by: Sudeep Holla <sudeep.holla@arm.com> Tested-by: Adam Young <admiyo@os.amperecomputing.com> Signed-off-by: Jassi Brar <jassisinghbrar@gmail.com>
1 parent f82c3e6 commit a5695de

1 file changed

Lines changed: 8 additions & 0 deletions

File tree

drivers/mailbox/pcc.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -444,6 +444,13 @@ static int pcc_send_data(struct mbox_chan *chan, void *data)
444444
return ret;
445445
}
446446

447+
static bool pcc_last_tx_done(struct mbox_chan *chan)
448+
{
449+
struct pcc_chan_info *pchan = chan->con_priv;
450+
451+
return pcc_mbox_cmd_complete_check(pchan);
452+
}
453+
447454
/**
448455
* pcc_startup - Called from Mailbox Controller code. Used here
449456
* to request the interrupt.
@@ -489,6 +496,7 @@ static const struct mbox_chan_ops pcc_chan_ops = {
489496
.send_data = pcc_send_data,
490497
.startup = pcc_startup,
491498
.shutdown = pcc_shutdown,
499+
.last_tx_done = pcc_last_tx_done,
492500
};
493501

494502
/**

0 commit comments

Comments
 (0)