> It make _nonono_ sense that the irq happens before the printer become
> ready. It's simply a bogus design of the irq handshake.
It does really. The diagram you showed is ack-in-busy, and the reason for
it is to prevent data loss. The Ack doesn't mean 'go ahead and send me
more data', it really means 'okay, I got that last byte'.
Other possibilities are ack-while busy (busy changes, then ack changes,
then busy changes back, the ack changes back) and ack-after-busy
(obvious). The way data loss can occur is if a polling driver is only
looking at the busy line, and sends the data before the ack comes, but
instead we hit an out of paper condition or something similar. The last
byte written gets lost then.
Although ack-after-busy is a good design for good software, it isn't good
for bad software, and unfortunately lots of printers were designed by
looking at existing software..
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to email@example.com
Please read the FAQ at http://www.tux.org/lkml/