mirror of
https://github.com/torvalds/linux.git
synced 2026-03-08 05:44:45 +01:00
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>
This commit is contained in:
parent
9f3bbbb72a
commit
c2b69f71ff
1 changed files with 6 additions and 0 deletions
|
|
@ -467,6 +467,12 @@ static int pcc_startup(struct mbox_chan *chan)
|
|||
unsigned long irqflags;
|
||||
int rc;
|
||||
|
||||
/*
|
||||
* Clear and acknowledge any pending interrupts on responder channel
|
||||
* before enabling the interrupt
|
||||
*/
|
||||
pcc_chan_acknowledge(pchan);
|
||||
|
||||
if (pchan->plat_irq > 0) {
|
||||
irqflags = pcc_chan_plat_irq_can_be_shared(pchan) ?
|
||||
IRQF_SHARED | IRQF_ONESHOT : 0;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue