Rob Herring <robh@xxxxxxxxxx> writes: > The BCM2835 AUX SPI has a shared interrupt line (with AUX UART). > Downstream fixes this with an AUX irqchip to demux the IRQ sources and a > DT change which breaks compatibility with older kernels. The AUX irqchip > was already rejected for upstream[1] and the DT change would break > working systems if the DTB is updated to a newer one. The latter issue > was brought to my attention by Alex Graf. > > The root cause however is a bug in the shared handler. Shared handlers > must check that interrupts are actually enabled before servicing the > interrupt. Add a check that the TXEMPTY or IDLE interrupts are enabled. It looks to me like we'd only return IRQ_HANDLED if we did work that needed doing. Is this check effectively doing some interlock to make sure that we've already started bcm2835aux_spi_transfer_one_irq() and aren't just racing against transaction setup?
Attachment:
signature.asc
Description: PGP signature