Re: [PATCH v2 08/11] drm/panthor: Automatically enable interrupts in panthor_fw_wait_acks()
From: Boris Brezillon
Date: Mon May 18 2026 - 04:17:58 EST
On Thu, 14 May 2026 15:25:07 +0100
Steven Price <steven.price@xxxxxxx> wrote:
> On 12/05/2026 12:37, Boris Brezillon wrote:
> > Rather than assuming an interrupt is always expected for request
> > acks, temporarily enable the relevant interrupts when the polling-wait
> > failed. This should hopefully reduce the number of interrupts the CPU
> > has to process.
> >
> > Signed-off-by: Boris Brezillon <boris.brezillon@xxxxxxxxxxxxx>
>
> As mentioned in the other thread[1] it turns out this won't work with
> the current firmware.
>
> The firmware checks the interrupt mask before signalling the ACK - so
> enabling the bit in the mask just before waiting for it is problematic -
> the firmware may not see the addition in the mask and will not trigger
> the interrupt.
Is it a problem though? wait_event_timeout() will evaluate the
condition before going to sleep, so, if the FW raced with the
input->ack_irq_mask update, I assume the condition will evaluate to
true and wait_event_timeout() would return immediately. The only issue
is if the FW updates the output->ack register after reading
input->ack_irq_mask, but that would be weird, since the output->ack
update doesn't depend on input->ack_irq_mask, and raising an interrupt
before updating output->ack would be racy anyway.
Am I missing something?