-
Ben Avison authored
The operation state machine is now polled both when the HAL device's specified interrupt fires, and also on TickerV. TickerV is the minimum requirement to enable background transfers, since some state changes (not least timeouts) won't generate a device interrupt, so would otherwise never complete. Some existing implementations of HAL devices don't specify the interrupt number correctly. If we were to enable interrupts in the SD controller for these, we wouldn't be acking the correct interrupt in the interrupt controller. The kernel's default interrupt handler traditionally disabled unhandled interrupt sources, but this no longer seems to work and we end up in an infinite loop as kernel interrupt dispatch unwinds with the interrupt still pending. Even if this were fixed, failing to ack a genuine interrupt would still be undesirable behaviour in the case of shared interrupt lines, because then the other interrupts sharing the line would be collate...
81c583d7