Skip to content

Commit c2b69f7

Browse files
sudeep-hollaJassi Brar
authored andcommitted
mailbox: pcc: Clear any pending responder interrupts before enabling it
Some platforms may leave a responder interrupt pending from earlier transactions. If a PCC responder channel has a pending interrupt when the controller starts up, enabling the IRQ line without first clearing the condition can lead to a spurious interrupt which could disrupt other transmissions if the IRQ is shared. Explicitly clear any pending responder interrupt before enabling the IRQ to ensure a clean start. Acknowledge the responder channel via pcc_chan_acknowledge() in startup before requesting/enablement of the IRQ. This ensures a clean baseline for the first transfer/receiption of the notification/response. 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 9f3bbbb commit c2b69f7

1 file changed

Lines changed: 6 additions & 0 deletions

File tree

drivers/mailbox/pcc.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -467,6 +467,12 @@ static int pcc_startup(struct mbox_chan *chan)
467467
unsigned long irqflags;
468468
int rc;
469469

470+
/*
471+
* Clear and acknowledge any pending interrupts on responder channel
472+
* before enabling the interrupt
473+
*/
474+
pcc_chan_acknowledge(pchan);
475+
470476
if (pchan->plat_irq > 0) {
471477
irqflags = pcc_chan_plat_irq_can_be_shared(pchan) ?
472478
IRQF_SHARED | IRQF_ONESHOT : 0;

0 commit comments

Comments
 (0)