On Thu, 14 May 2026 15:25:07 +0100 Steven Price <[email protected]> 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 <[email protected]> > > 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?
