spi: bcm2835aux: ensure interrupts are enabled for shared handler
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 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.
Cc: Alexander Graf <firstname.lastname@example.org>
Cc: Marc Zyngier <email@example.com>
Cc: Mark Brown <firstname.lastname@example.org>
Cc: Eric Anholt <email@example.com>
Cc: Stefan Wahren <firstname.lastname@example.org>
Cc: Florian Fainelli <email@example.com>
Cc: Ray Jui <firstname.lastname@example.org>
Cc: Scott Branden <email@example.com>
Signed-off-by: Rob Herring <firstname.lastname@example.org>
Reviewed-by: Eric Anholt <email@example.com>
Signed-off-by: Mark Brown <firstname.lastname@example.org>
1 file changed