Change to IRQ based I/O